package br.ucb.ucblive.managedbean;


import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import br.ucb.ucblive.HIB.CursoHIB;
import br.ucb.ucblive.HIB.ModeradorHIB;
import br.ucb.ucblive.beans.Aluno;
import br.ucb.ucblive.beans.Curso;
import br.ucb.ucblive.beans.Moderador;
import br.ucb.ucblive.beans.Usuario;

@ManagedBean (name="moderadorManagedBean")
@SessionScoped
public class ModeradorManagedBean {
	private Moderador moderador;
	private List<Moderador> moderadores;
	private ModeradorHIB moderadorHib;
	private List<Curso> cursos;
	private List<Curso> cursoLogado;
	private String query;
	
	public ModeradorManagedBean(){
		setModerador(new Moderador());
		setModeradores(new ArrayList<Moderador>());
		setModeradorHib(new ModeradorHIB());
		setQuery(new String());
	}
	
	public List<Curso> getCursoLogado() {
		return cursoLogado;
	}

	public void setCursoLogado(List<Curso> cursoLogado) {
		this.cursoLogado = cursoLogado;
	}

	public Moderador getModerador() {
		return moderador;
	}

	public void setModerador(Moderador moderador) {
		this.moderador = moderador;
	}

	public List<Moderador> getModeradores() {
		return moderadores;
	}

	public void setModeradores(List<Moderador> moderadores) {
		this.moderadores = moderadores;
	}

	
	public ModeradorHIB getModeradorHib() {
		return moderadorHib;
	}

	public void setModeradorHib(ModeradorHIB moderadorHib) {
		this.moderadorHib = moderadorHib;
	}
	
	public List<Curso> getCursos() {
		return cursos;
	}

	public void setCursos(List<Curso> cursos) {
		this.cursos = cursos;
	}
	
	public String getQuery() {
		return query;
	}

	public void setQuery(String query) {
		this.query = query;
	}

	public void insere(Usuario usuario) {
		getModerador().setUsuario(usuario);
		getModeradores().add(getModerador());
		System.out.println(getModerador().toString());
		moderadorHib.salvar(moderador);
		setModerador(new Moderador());		
	}
	
	public void populaCursos(boolean atualiza, int idCurso) throws SQLException{
		if(!atualiza){
			CursoHIB cursoHib = new CursoHIB();
			cursos = cursoHib.listarCursosModeradorIsCadastro();
		}
		else{
			CursoHIB cursoHib = new CursoHIB();
			cursos = cursoHib.listarCursosModeradorIsAtualiza(idCurso);
		}
	}
	public void populaCursosModerador(Usuario usuario)throws SQLException{
		CursoHIB cursoHib = new CursoHIB();
		cursoLogado = cursoHib.listarCursosByUsuario(usuario);
	}
	
	public String listarModerador(){
		setModeradores(new ArrayList<Moderador>());
		List<Moderador> users = new ArrayList<Moderador>();
		
		for (Moderador m : moderadorHib.listarOrdemCrescente()){
			if(m.getNome().toUpperCase().contains(query.toUpperCase()))
				users.add(m);
		}
		moderadores.addAll(users);
		setQuery(new String());
		return "/adm/moderadorList?faces-redirect=true";
	}

	

}
